Telegram Group & Telegram Channel
🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru



tg-me.com/Python_Community_ru/2598
Create:
Last Update:

🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru

BY Python Community




Share with your friend now:
tg-me.com/Python_Community_ru/2598

View MORE
Open in Telegram


Python Community Telegram | DID YOU KNOW?

Date: |

NEWS: Telegram supports Facetime video calls NOW!

Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another option—secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secure—like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.

Should I buy bitcoin?

“To the extent it is used I fear it’s often for illicit finance. It’s an extremely inefficient way of conducting transactions, and the amount of energy that’s consumed in processing those transactions is staggering,” the former Fed chairwoman said. Yellen’s comments have been cited as a reason for bitcoin’s recent losses. However, Yellen’s assessment of bitcoin as a inefficient medium of exchange is an important point and one that has already been raised in the past by bitcoin bulls. Using a volatile asset in exchange for goods and services makes little sense if the asset can tumble 10% in a day, or surge 80% over the course of a two months as bitcoin has done in 2021, critics argue. To put a finer point on it, over the past 12 months bitcoin has registered 8 corrections, defined as a decline from a recent peak of at least 10% but not more than 20%, and two bear markets, which are defined as falls of 20% or more, according to Dow Jones Market Data.

Python Community from ua


Telegram Python Community
FROM USA